package model

import (
	"gorm.io/gorm"
	"time"
)

type DataFlag struct {
	ID           int64  `json:"id" gorm:"id"`
	FtpInfoId    int64  `json:"ftp_info_id" gorm:"ftp_info_id"`       // ftp_info_id
	Date         string `json:"date" gorm:"date"`                     // 日期
	Time         string `json:"time" gorm:"time"`                     // 时间
	LogTime      int64  `json:"log_time" gorm:"log_time"`             // log_time
	SteamId      string `json:"steam_id" gorm:"steam_id"`             // 时间
	GameId       int64  `json:"game_id" gorm:"game_id"`               // 游戏id
	GameName     string `json:"game_name" gorm:"game_name"`           // 游戏名称
	EventType    string `json:"event_type" gorm:"event_type"`         // 事件类型
	FlagId       int64  `json:"flag_id" gorm:"flag_id"`               // 领地旗id
	FlagSteamId  string `json:"flag_steam_id" gorm:"flag_steam_id"`   // 领地旗所属steamid
	FlagGameId   int64  `json:"flag_game_id" gorm:"flag_game_id"`     // 领地旗所属用户id
	FlagGameName string `json:"flag_game_name" gorm:"flag_game_name"` // 领地旗所属用户名称
	Location     string `json:"location" gorm:"location"`             // 领地旗所在位置
	FlagLocation string `json:"flag_location" gorm:"flag_location"`   // 领地旗所在位置
	UpdatedAt    int64  `json:"updated_at" gorm:"updated_at"`         // 修改时间
	CreatedAt    int64  `json:"created_at" gorm:"created_at"`         // 添加时间
}

func (DataFlag) TableName() string {
	return "sm_data_flag"
}

func (u DataFlag) BeforeUpdate(tx *gorm.DB) (err error) {
	now := time.Now()
	unixTime := now.Unix()
	u.UpdatedAt = unixTime
	u.CreatedAt = unixTime
	return nil
}

type DataFlagM struct {
	DB *gorm.DB
}

func NewDataFlagM() *DataFlagM {
	return &DataFlagM{
		GetDB(),
	}
}

func (c *DataFlagM) InsertDataFlag(DataArr []DataFlag) bool {

	result := c.DB.Omit("id").CreateInBatches(DataArr, 1000)

	if result.Error != nil {
		panic(result.Error)
	}
	return true
}
